People are increasingly relying on computing devices, such as tablets and smartphones, which utilize touch sensitive displays. These displays enable users to enter text, select displayed items, or otherwise interact with the devices by touching and performing various movements with respect to the display screen, as opposed to other conventional input methods, such as using a mouse or directional keys on a keyboard. Many mobile computing devices include touch sensitive displays that can detect multiple touches, such as where a user uses two or more fingers to provide concurrent input. These multi-touch enabled devices are programmed to interpret the movement of multiple touches over a period of time as user inputs to perform certain functions, such as panning or zooming the image on the display.
Current touch-based pan and zoom gesture detection methods rely on state-based counting of touch points in order to distinguish and respond to user interaction. As touch event notifications are received by a software application on the computing device, the application maintains a history of these events over time in order to respond appropriately to the user's input. This requires bookkeeping on the part of the application in order to track several different types of events, and can result in a fragile decision tree. Accordingly, there is a need for improved methods and systems for handling multi-touch inputs.